-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move Statistics stdlib module to external repository #33399
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to see that the hacks I made to generalize STDLIBS_EXT
(quite some time ago now) actually work :-D The technical detail of this looks fine to me.
One query - is there consensus that this stdlib should live in JuliaStats
? (Sounds reasonable to me; just wondering whether it's been bikeshedded etc.)
I asked on Slack and nobody commented except @ararslan, so this PR reflects the consensus of 2 people. :-) |
Heh :-) FWIW I was expecting to throw Logging into JuliaLang/Logging.jl at some stage but it doesn't have an obvious alternative home. What are the pros and cons of having stdlibs in JuliaLang vs elsewhere? It seems mainly about management of permissions and possibly access to infrastructure? For example, does it make sense for stdlibs to eventually have access to the core benchmarking infrastructure and CI runners? @staticfloat any thoughts? |
Where the repository actually lives doesn't really matter; by virtue of it being a stdlib, it's pulled in and bundled with Julia when Julia is built. For testing, that means that the tests for stdlibs are always run on the buildbot infrastructure, since a build of Julia contains all stdlibs, unless tests are explicitly disabled. (That was done recently for Pkg.) As for benchmarking, Nanosoldier's code and infrastructure is set up only to run on this repo. It does a full build of Julia so it will end up pulling in stdlibs anyway, which can continue to be benchmarked via BaseBenchmarks, just like the ones that currently live in this repo are. |
That's fine for releases, but not really any good for development in the longer term. The stdlibs need their own CI just like any other package. |
Pkg seems to be getting by with Travis and AppVeyor. |
Yeah I don't think where the package lives matters a lot. We can even move it very easily without breaking anything. If Julia developers prefer all stdlib packages to live in JuliaLang, that's also fine with me. |
I think having the stdlibs be in JuliaLang but in separate reps would be good. I would love to refactor out linalg and sparse similarly. |
I'll admit I've also got a bias to have the stdlib repos in JuliaLang, but I'm not sure it's founded. That's why I'm asking whether there's any substantive difference about where these live. I think it ultimately comes down to who has default commit access. There's two different needs here:
With everything being open source and the ability to add external contributors to individual repos there may not be much practical difference here. There might be a symbolic difference though :-) |
JuliaStats seems like a natural home for it based on the expected contributors and audience, but I also don't care that much, so I'm fine with whatever. |
I think the tension here is between domain experts (e.g. contributors to |
I myself have the same tension. I'd like a bunch of stuff in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. FWIW I restarted CI on windows though it would seem failures could hardly be related.
Thanks. I've added checksums which are needed AFAICT. |
Now that's funny. Before the last commit I got this error on 32-bit Linux and 64-bit MacOS:
And now with the last commit I get this error on 64-bit Linux and 64-bit Windows:
FWIW, locally on 63-bit Linux I get |
I've changed the PR to use another commit, and CI passed. I really think something weird happened due to moving the project from JuliaStats to JuliaLang, either on the GitHub side or on the cache side. |
I guess it looks good now? Not sure what's going on with the Windows tests (failing download). |
Yeah those failures are pretty weird: basically a timeout when downloading julia-installer.exe. It seems to download the whole thing or almost the whole thing, then gets stuck. (The last log message from Anyway, the windows builds passed which means the changes here should be fine given they apply to the build process. A failed download during testing on one platform doesn't seem worrying. |
I restarted the win64 tester and it seems stuck again at the same download. @staticfloat any thoughts? |
Okay I debugged this a bit today, and I think the issue here is that this PR just barely managed to dodge the commit on Sept. 28th that changed the installer to use Inno instead of NSIS. Can someone rebase this off of the latest |
9c4524d
to
6cd125b
Compare
That fixed the failures! I'll merge in a few days if nobody objects. |
Should we transfer the statistics related issues to that repo? |
Imo yes. |
I'm looking forward to doing the same then with sparse matrix packages and eventually linear alebra. Having the issues in the new place will make it a lot easier. |
Yes, definitely. |
The goal is to be able to import features from StatsBase (notably #31395) and keep history without messing too much with the Julia history. And of course, once stdlib modules can be updated, to allow using new features from old Julia versions.
I've tried to follow what is done for Pkg.jl, I hope I got everything right.
See JuliaStats/Statistics.jl#1 for how the files and history were extracted from the Julia repo.